package main

import (
	"fmt"
	"gobcos/src/accounts/abi/bind"
	"gobcos/src/client"
	"gobcos/src/crypto"
	store "gobcos/src/fiscotest/helloworld" // import Store.go
	"log"
)

//部署合约到fisco上
func main3(){
	//填1就是groupId=1，2就是groupId=2
	groupID := uint(1)
	//建立rpc连接
	client, err := client.Dial("http://106.55.171.201:8545", groupID)
	if err != nil {
		log.Fatal(err)
	}
	//因为是set方法，改变了这个合约的内容，fisco必须要知道是哪个用户改的，此处填入生成的私钥
	privateKey, err := crypto.HexToECDSA("1199eddc053e37ec24c5172dace5987c1dace18b7aea73e311603f9465dfd02b") // 145e247e170ba3afd6ae97e88f00dbc976c2345d511b0f6713355d19d8b80b58
	if err != nil {
		log.Fatal(err)
	}
	//传入加密后的密钥
	auth := bind.NewKeyedTransactor(privateKey)
	//该方法是合约经过编译后，Helloworld.go自带的部署的方法。调用即可
	address, tx, instance, err := store.DeployHelloworld(auth, client)
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println("contract address: ", address.Hex())
	fmt.Println("transaction hash: ", tx.Hash().Hex())
	//返回了一个合约的实例，我们可以接着get或者set。在contract_write.go中set
	_ = instance

}